/*************************************************************************
 *  Copyright (C), 2017-2018, Mogoson tech. Co., Ltd.
 *  FileName: Parameters.cs
 *  Author: Mogoson   Version: 1.0   Date: 7/12/2017
 *  Version Description:
 *    Internal develop version,mainly to achieve its function.
 *  File Description:
 *    Ignore.
 *  Class List:
 *    <ID>           <name>             <description>
 *     1.
 *  Function List:
 *    <class ID>     <name>             <description>
 *     1.
 *  History:
 *    <ID>    <author>      <time>      <version>      <description>
 *     1.     Mogoson     7/12/2017       1.0        Build this file.
 *************************************************************************/

namespace Developer.AreaRoam
{
    using System;

    [Serializable]
    public struct AnimatorFloat
    {
        public string name;
        public float value;

        public AnimatorFloat(string name, float value)
        {
            this.name = name;
            this.value = value;
        }
    }

    [Serializable]
    public struct AnimatorInteger
    {
        public string name;
        public int value;

        public AnimatorInteger(string name, int value)
        {
            this.name = name;
            this.value = value;
        }
    }

    [Serializable]
    public struct AnimatorBool
    {
        public string name;
        public bool value;

        public AnimatorBool(string name, bool value)
        {
            this.name = name;
            this.value = value;
        }
    }

    [Serializable]
    public struct AnimatorTrigger
    {
        public string name;

        public AnimatorTrigger(string name)
        {
            this.name = name;
        }
    }

    [Serializable]
    public struct AnimatorParameters
    {
        public AnimatorFloat[] floats;
        public AnimatorInteger[] integers;
        public AnimatorBool[] bools;
        public AnimatorTrigger[] triggers;
    }

    [Serializable]
    public struct Range
    {
        public float min;
        public float max;

        public Range(float min, float max)
        {
            this.min = min;
            this.max = max;
        }
    }

    [Serializable]
    public struct BehaviourSettings
    {
        public string name;
        public float overrideSpeed;
        public Range stayTime;
        public AnimatorParameters animatorParameters;
    }//class_end
}//namespace_end